let succeed = ['10000','10006','10008','11108']
let errNo = ['10013','11101','400']
const install = (Vue, vm) => {
	Vue.prototype.$u.http.setConfig({
		// baseUrl:'https://ctapi.phpbai.com',//陈宏环境
		// baseUrl:'https://api.youyuekeji.cc',
		baseUrl:'https://chuntai.shanghaijiudao.com',
		// #ifdef MP-WEIXIN
		// #endif
		// 如果将此值设置为true，拦截回调中将会返回服务端返回的所有数据response，而不是response.data
		// 设置为true后，就需要在this.$u.http.interceptor.response进行多一次的判断，请打印查看具体值
		showLoading: true, // 是否显示请求中的loading
		loadingText: '加载中...', // 请求loading中的文字提示
		loadingTime: 800, // 在此时间内，请求还没回来的话，就显示加载中动画，单位ms
		originalData: true, // 是否在拦截器中返回服务端的原始数据
		loadingMask: true, // 展示loading的时候，是否给一个透明的蒙层，防止触摸穿透
		// 设置自定义头部content-type
		timeout:10000,	//超时时间
	});
	// 请求拦截，配置Token等参数
	Vue.prototype.$u.http.interceptor.request = (config) => {
		console.log('header----storeId', vm.store_id)
		if(vm.token)
		config.header['x-user-token'] = vm.token;
		config.header['storeId'] = vm.store_id;
		return config; 
	}
	// 响应拦截，判断状态码是否通过
	Vue.prototype.$u.http.interceptor.response = (res) => {
		// 请求成功
		if(res.statusCode == 200) {
			let {code=0,msg,data} = res.data;
			if(succeed.some(v=>v==code)){
				return res.data;
			}else{
				if((code == 11101||code == 11104 || code == 20004) && msg){//未登录
					vm.$u.vuex('token','');
					let obj = {
						avatar:'https://willmid-img.oss-cn-shanghai.aliyuncs.com/2021/09/14/user.jpg',
						username:'点击登录',
						phone:"",
						integral:0,
						balance:0,
					}
					vm.$u.vuex('userInfo',obj);
					// uni.switchTab({
					// 	url:"/pages/index/index"
					// })
				}
				if(!errNo.some(v=>v==code)){
					console.log('msg1', res)
					vm.$u.toast(msg);
				}
				res.data.code = false;
				return res.data;
			}
		} else{
			let error;
			console.log(123, res,Vue)
			switch (res.statusCode) {
			    case 400:
			        error  = '错误请求'
			        break;
			    case 401:
			        error  = '未授权，请重新登录'
			        break;
			    case 403:
			        error  = '拒绝访问'
			        break;
			    case 404:
			        error  = '请求错误,未找到该资源'
			        break;
			    case 405:
			        error  = '请求方法未允许'
			        break;
			    case 408:
			        error  = '请求超时'
			        break;
			    case 500:
			        error  = '服务器端出错'
			        break;
			    case 501:
			        error  = '网络未实现'
			        break;
			    case 502:
			        error  = '网络错误'
			        break;
			    case 503:
			        error  = '服务不可用'
			        break;
			    case 504:
			        error  = '网络超时'
			        break;
			    case 505:
			        error  = 'http版本不支持该请求'
			        break;
			    default:
			        error  = '';
			}
			if(error) {
				console.log('msg2', res)
				vm.$u.toast(error);
			}
			
			return {
				code:false,
				statusCode:res.statusCode,
				data:[],
				msg:error
			};
		}
	}
}

export default {
	install
}